{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RUL prediction using random forest\n",
    "\n",
    "In this notebook, we will apply random forest to predict RUL of NASA's turbofan engine dataset FD001. We will use scikit-learn to implement random forest."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import mean_squared_error\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(44)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Numpy version:  1.18.5\n",
      "Pandas version:  1.0.5\n",
      "Scikit-learn version:  0.23.1\n"
     ]
    }
   ],
   "source": [
    "print(\"Numpy version: \", np.__version__)\n",
    "print(\"Pandas version: \", pd.__version__)\n",
    "print(\"Scikit-learn version: \", sklearn.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Preprocessing\n",
    "\n",
    "We strongly encourage readers to go through the [dataset description and prreprocessing notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_data_description_and_preprocessing.ipynb). In that notebook we have explained how data preprocessing functions work with simple examples. In this notebook we will only use those functions. So prior familiarity with these functions is an advantage. Below are the parameters that we will use for data preprocessing:\n",
    "\n",
    "* Degradation model: Piecewise linear\n",
    "* Early RUL: 125\n",
    "* Window length: 1\n",
    "* Shift: 1\n",
    "* Data scaling: No (Tree based methods don't require data scaling)\n",
    "\n",
    "We will calculate two prediction scores on test data. In one case, we will take last 5 examples of test data for engine, calculate their predictions, and finally average those for each engine. In the second case, we will take only the last example of each engine and make predictions. The logic behind taking last 5 examples and averaging their predictions is to make the prediction robust against outliers. Due to some external factor, if our last example happens to be corrupted, its prediction outcome might be far off from the actual one. But if we average predictions from last 5 examples, we will get a more conservative estimate. \n",
    "\n",
    "In the following cell we will show boxplots of each column of training data. That will give us an idea about the values in different columns. If all the values in a column are constant, we drop those columns from our analysis.\n",
    "\n",
    "Readers can download the data from [here](https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/#turbofan). In the following cells, wherever data are read from a folder, readers should change the string to point to the respective folder from their system to run this notebook seamlessly. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x1512 with 21 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/train_FD001.txt\", sep= \"\\s+\", header = None)\n",
    "plt.figure(figsize = (16, 21))\n",
    "for i in range(21):\n",
    "    temp_data = train_data.iloc[:,i+5]\n",
    "    plt.subplot(7,3,i+1)\n",
    "    plt.boxplot(temp_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_targets(data_length, early_rul = None):\n",
    "    \"\"\" \n",
    "    Takes datalength and earlyrul as input and \n",
    "    creates target rul.\n",
    "    \"\"\"\n",
    "    if early_rul == None:\n",
    "        return np.arange(data_length-1, -1, -1)\n",
    "    else:\n",
    "        early_rul_duration = data_length - early_rul\n",
    "        if early_rul_duration <= 0:\n",
    "            return np.arange(data_length-1, -1, -1)\n",
    "        else:\n",
    "            return np.append(early_rul*np.ones(shape = (early_rul_duration,)), np.arange(early_rul-1, -1, -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_input_data_with_targets(input_data, target_data = None, window_length = 1, shift = 1):\n",
    "    \"\"\"Depending on values of window_length and shift, this function generates batchs of data and targets \n",
    "    from input_data and target_data.\n",
    "    \n",
    "    Number of batches = np.floor((len(input_data) - window_length)/shift) + 1\n",
    "    \n",
    "    **We don't check input dimensions uisng exception handling. So readers should be careful while using these\n",
    "    functions. If input data are not of desired dimension, either error occurs or something undesirable is \n",
    "    produced as output.**\n",
    "    \n",
    "    Arguments:\n",
    "        input_data: input data to function (Must be 2 dimensional)\n",
    "        target_data: input rul values (Must be 1D array)s\n",
    "        window_length: window length of data\n",
    "        shift: Distance by which the window moves for next batch. This is closely related to overlap\n",
    "               between data. For example, if window length is 30 and shift is 1, there is an overlap of \n",
    "               29 data points between two consecutive batches.\n",
    "        \n",
    "    \"\"\"\n",
    "    num_batches = np.int(np.floor((len(input_data) - window_length)/shift)) + 1\n",
    "    num_features = input_data.shape[1]\n",
    "    output_data = np.repeat(np.nan, repeats = num_batches * window_length * num_features).reshape(num_batches, window_length,\n",
    "                                                                                                  num_features)\n",
    "    if target_data is None:\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "        return output_data\n",
    "    else:\n",
    "        output_targets = np.repeat(np.nan, repeats = num_batches)\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "            output_targets[batch] = target_data[(shift*batch + (window_length-1))]\n",
    "        return output_data, output_targets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_test_data(test_data_for_an_engine, window_length, shift, num_test_windows = 1):\n",
    "    \"\"\" This function takes test data for an engine as first input. The next two inputs\n",
    "    window_length and shift are same as other functins. \n",
    "    \n",
    "    Finally it takes num_test_windows as the last input. num_test_windows sets how many examplles we\n",
    "    want from test data (from last). By default it extracts only the last example.\n",
    "    \n",
    "    The function return last examples and number of last examples (a scaler) as output. \n",
    "    We need the second output later. If we are extracting more than 1 last examples, we have to \n",
    "    average their prediction results. The second scaler halps us do just that.\n",
    "    \"\"\"\n",
    "    max_num_test_batches = np.int(np.floor((len(test_data_for_an_engine) - window_length)/shift)) + 1\n",
    "    if max_num_test_batches < num_test_windows:\n",
    "        required_len = (max_num_test_batches -1)* shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, max_num_test_batches\n",
    "    else:\n",
    "        required_len = (num_test_windows - 1) * shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, num_test_windows"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed trianing data shape:  (20631, 1, 14)\n",
      "Processed training ruls shape:  (20631,)\n",
      "Processed test data shape:  (500, 1, 14)\n",
      "True RUL shape:  (100,)\n"
     ]
    }
   ],
   "source": [
    "test_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/test_FD001.txt\", sep = \"\\s+\", header = None)\n",
    "true_rul = pd.read_csv('/home/biswajit/data/cmapss_data/RUL_FD001.txt', sep = '\\s+', header = None)\n",
    "\n",
    "window_length = 1\n",
    "shift = 1\n",
    "early_rul = 125            \n",
    "processed_train_data = []\n",
    "processed_train_targets = []\n",
    "\n",
    "# How many test windows to take for each engine. If set to 1 (this is the default), only last window of test data for \n",
    "# each engine are taken. If set to a different number, that many windows from last are taken. \n",
    "# Final output is the average of output of all windows.\n",
    "num_test_windows = 5     \n",
    "processed_test_data = []\n",
    "num_test_windows_list = []\n",
    "\n",
    "columns_to_be_dropped = [0,1,2,3,4,5,9,10,14,20,22,23]\n",
    "\n",
    "num_machines = np.min([len(train_data[0].unique()), len(test_data[0].unique())])\n",
    "\n",
    "for i in np.arange(1, num_machines + 1):\n",
    "    \n",
    "    temp_train_data = train_data[train_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    temp_test_data = test_data[test_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from both training and test data\n",
    "    if (len(temp_test_data) < window_length):\n",
    "        print(\"Test engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    elif (len(temp_train_data) < window_length):\n",
    "        print(\"Train engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    \n",
    "    temp_train_targets = process_targets(data_length = temp_train_data.shape[0], early_rul = early_rul)\n",
    "    data_for_a_machine, targets_for_a_machine = process_input_data_with_targets(temp_train_data, temp_train_targets, \n",
    "                                                                                window_length = window_length, shift = shift)\n",
    "    \n",
    "    # Prepare test data\n",
    "    test_data_for_an_engine, num_windows = process_test_data(temp_test_data, window_length = window_length, shift = shift,\n",
    "                                                             num_test_windows = num_test_windows)\n",
    "    \n",
    "    processed_train_data.append(data_for_a_machine)\n",
    "    processed_train_targets.append(targets_for_a_machine)\n",
    "    \n",
    "    processed_test_data.append(test_data_for_an_engine)\n",
    "    num_test_windows_list.append(num_windows)\n",
    "\n",
    "processed_train_data = np.concatenate(processed_train_data)\n",
    "processed_train_targets = np.concatenate(processed_train_targets)\n",
    "processed_test_data = np.concatenate(processed_test_data)\n",
    "true_rul = true_rul[0].values\n",
    "\n",
    "# Shuffle data\n",
    "index = np.random.permutation(len(processed_train_targets))\n",
    "processed_train_data, processed_train_targets = processed_train_data[index], processed_train_targets[index]\n",
    "\n",
    "print(\"Processed trianing data shape: \", processed_train_data.shape)\n",
    "print(\"Processed training ruls shape: \", processed_train_targets.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "print(\"True RUL shape: \", true_rul.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed train data shape:  (20631, 14)\n",
      "Processed test data shape:  (500, 14)\n"
     ]
    }
   ],
   "source": [
    "processed_train_data = processed_train_data.reshape(-1, processed_train_data.shape[2])\n",
    "processed_test_data = processed_test_data.reshape(-1, processed_test_data.shape[2])\n",
    "print(\"Processed train data shape: \", processed_train_data.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE:  19.172046908281168\n"
     ]
    }
   ],
   "source": [
    "rf_model = RandomForestRegressor(n_estimators= 300, max_features = \"sqrt\",\n",
    "                                 n_jobs = -1, random_state = 38)\n",
    "rf_model.fit(processed_train_data, processed_train_targets)\n",
    "rul_pred = rf_model.predict(processed_test_data)\n",
    "\n",
    "# First split predictions according to number of windows of each engine\n",
    "preds_for_each_engine = np.split(rul_pred, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                             for ruls_for_each_engine, num_windows in zip(preds_for_each_engine, num_test_windows_list)]\n",
    "RMSE = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine))\n",
    "print(\"RMSE: \", RMSE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With somewhat arbitrary choice of hyperparameters, we obtained an RMSE value of 19.17. But can we do better? To find out better values of hyperparameters, we can do a principled hyperparameter tuning. There are different ways to do hyperparameter search. Here, we will use simple grid search. \n",
    "\n",
    "In grid search, we first define a grid of parameters. Then for each set of parameters, we will fit a 10 xgboost models (as it is 10 fold cross validation). Finally we will average the result of all folds for a particular parameter choice. The parameter choice that gives best score for cross validation is chosen as the best hyperparameter.\n",
    "\n",
    "Grid search of hyperparameters (with cross validation) is computationally intensive. It might take a long time on a personal computer. If that is the case, readers are advised to comment the next cell and directly use the best hyperparameter values as done in subsequent cells."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=10, estimator=RandomForestRegressor(), n_jobs=-1,\n",
       "             param_grid={'max_features': ['auto', 'sqrt', 'log2'],\n",
       "                         'n_estimators': [100, 200, 250, 300, 350, 400]},\n",
       "             scoring='neg_root_mean_squared_error')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "param_grid = {\"n_estimators\": [100, 200, 250, 300, 350, 400],\n",
    "              \"max_features\": [\"auto\", \"sqrt\", \"log2\"]}\n",
    "grid = GridSearchCV(RandomForestRegressor(), param_grid = param_grid,scoring = \"neg_root_mean_squared_error\",\n",
    "                    n_jobs = -1, cv = 10)\n",
    "grid.fit(processed_train_data, processed_train_targets)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'max_features': 'log2', 'n_estimators': 400}"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid.best_params_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will use the best model to predict on test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE after hyperparameter tuning:  19.155487035768626\n"
     ]
    }
   ],
   "source": [
    "best_rf_model = grid.best_estimator_\n",
    "rul_pred_tuned = best_rf_model.predict(processed_test_data)\n",
    "\n",
    "preds_for_each_engine_tuned = np.split(rul_pred_tuned, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine_tuned = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                                   for ruls_for_each_engine, num_windows in zip(preds_for_each_engine_tuned,\n",
    "                                                                                num_test_windows_list)]\n",
    "RMSE_tuned = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine_tuned))\n",
    "print(\"RMSE after hyperparameter tuning: \", RMSE_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that while prediction, we are predicting RUL values for last 5 examples of every engine. Then we take mean of all 5 predictions for each engine and calculate final RMSE.\n",
    "\n",
    "If instead we wish to take only the last example of every engine to make predictions and calculate RUL, we can do so by taking the last prediction of every engine as calculated before and calculate RMSE as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE (Taking only last examples):  17.763332681045526\n"
     ]
    }
   ],
   "source": [
    "indices_of_last_examples = np.cumsum(num_test_windows_list) - 1\n",
    "preds_for_last_example = np.concatenate(preds_for_each_engine_tuned)[indices_of_last_examples]\n",
    "\n",
    "RMSE_new = np.sqrt(mean_squared_error(true_rul, preds_for_last_example))\n",
    "print(\"RMSE (Taking only last examples): \", RMSE_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you are not convinced by above calculations, take a look at the last section of [this notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_FD001_xgboost_piecewise_linear_degradation_model.ipynb)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For CMAPSS data, along with RMSE another metric (S-score) is usually reported in literature. S-score is defined as:\n",
    "\n",
    "$$S= \\sum_{i=1}^N{s_i}$$\n",
    "\n",
    "where, \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "    s_i=\n",
    "    \\begin{cases}\n",
    "      (e^{-\\frac{d_i}{13}})-1, & \\text{for}\\ d_i < 1 \\\\\n",
    "      (e^{\\frac{d_i}{10}})-1, & \\text{for}\\ d_i \\geq 1\\\\\n",
    "    \\end{cases}\n",
    "  \\end{equation}\n",
    "  $$\n",
    "  \n",
    "We can compute the S-metric as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_s_score(rul_true, rul_pred):\n",
    "    \"\"\"\n",
    "    Both rul_true and rul_pred should be 1D numpy arrays.\n",
    "    \"\"\"\n",
    "    diff = rul_pred - rul_true\n",
    "    return np.sum(np.where(diff < 0, np.exp(-diff/13)-1, np.exp(diff/10)-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "S-score:  843.9070146500734\n"
     ]
    }
   ],
   "source": [
    "s_score = compute_s_score(true_rul, preds_for_last_example)\n",
    "print(\"S-score: \", s_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot true and predicted RUL values\n",
    "plt.plot(true_rul, label = \"True RUL\", color = \"red\")\n",
    "plt.plot(preds_for_last_example, label = \"Pred RUL\", color = \"blue\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also plot variable importance score."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Plot feature importance\n",
    "feature_importance = best_rf_model.feature_importances_\n",
    "indices = np.argsort(feature_importance)[::-1]\n",
    "num_features = processed_train_data.shape[1]\n",
    "plt.figure()\n",
    "plt.title(\"Feature importances\")\n",
    "plt.bar(range(num_features), feature_importance[indices],\n",
    "        color=\"blue\", align=\"center\")\n",
    "plt.xticks(range(num_features), indices)\n",
    "plt.xlim([-1, num_features])\n",
    "plt.xlabel(\"Feature Columns\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As a final note remember that hyperparameter tuning is more of an art than science. It is possible to obtain better results than what has been obtained here by choosing better set of hyperparameters.\n",
    "\n",
    "For other reproducible results on RUL, interested readers can visit my [project page](https://biswajitsahoo1111.github.io/rul_codes_open). "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf_cpu_23",
   "language": "python",
   "name": "tf_cpu_23"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
